function Bala(juego, x, y, explotaEn, callback) {
    Objeto.call(this, juego, x, y);

    this.callback = callback;
    
    this.explotaEn = explotaEn;
    this.speed = 10;
   
    this.sprite = MANEJADOR_RECURSOS.getAsset('img/bala.png');  

    this.rx = x * juego.tileSize;
    this.ry = y * juego.tileSize;

    //calculo la distancia (h2 = a2 + b2)
    var dx = (explotaEn.x * 32) - this.rx;
    var dy = (explotaEn.y * 32) - this.ry;
    var distance = Math.sqrt(dx * dx + dy * dy);
    //calculo cuantos movimientos tengo que hacer para esa distancia a mi velocidad
    this.moves = distance / this.speed;
    //calculo cuantas unidades me muevo en el eje x e y para la cantidad de movimientos que tengo
    this.xunits = dx / this.moves;
    this.yunits = dy / this.moves;

    //actualizao coordenadas de la bala
    this.x = x;
    this.y = y; 
}
Bala.prototype = new Objeto();
Bala.prototype.constructor = Bala;

Bala.prototype.update = function() {
    if (this.x == this.explotaEn.x && this.y  == this.explotaEn.y) {        
        this.juego.agregarObjeto(new Explocion(this.juego, this.explotaEn.x, this.explotaEn.y));
        this.removeFromWorld = true;
        if(this.callback)
            this.callback();
    } else {       
        if (this.moves > 0) {        
            this.moves--;
            this.rx += this.xunits;
            this.ry += this.yunits;        
        }        
        this.x = Math.round(this.rx / 32);
        this.y = Math.round(this.ry / 32);        
    }
}

Bala.prototype.draw = function(ctx) {    
    ctx.drawImage(this.sprite, this.rx, this.ry);   
    Objeto.prototype.draw.call(this, ctx);
}